package cn.cqzaier.pub.api.plugin;

import cn.cqzaier.pub.api.plugin.cuteCat.response.GroupInfo;
import com.alibaba.fastjson.JSONObject;

import java.util.List;
import java.util.Map;

/**
 * 机器人公共接口  自己想新增接口自己写实现
 */
public interface WxrebootCommonApiInterface {
    /**
     * 获取请求接口
     * @return
     */
    public String getRequestUrl();


    /**
     * 获取登录的机器人id
     * @return
     */
    List<JSONObject> getLoggedAccountList();

    /**
     * 获取好友列表
     * @param rebootId
     * @return
     */
    public Map<String,Object>  getFriendlist(String rebootId);

    /**
     * 获取组列表
     * @param rebootId
     * @return
     */
    public List<GroupInfo> getGrouplist(String rebootId);


    /**
     * 发送群消息
     * @param rebootId
     * @return
     */
    public JSONObject sendGroupTxtMsg(String rebootId, String groupId, String msg);

    /**
     * 发送群消息并@好友
     * @param rebootId
     * @return
     */
    public JSONObject sendGroupMsgAndAt(String rebootId, String groupId, String memberId, String msg);

    /**
     * 发送好友消息
     * @param rebootId
     * @return
     */
    public JSONObject sendPrivateTxtMsg(String rebootId, String groupId, String msg);


    /**
     * 同意好友请求事件
     * @param rebootId
     * @return
     */
    public JSONObject agreeFriendVerify(String rebootId, JSONObject jsonObject);

    /**
     * 删除群里好友
     * @param rebootId
     * @return
     */
    public JSONObject removeGroupMember(String rebootId, String groupId, String memberId, JSONObject otherInfo);


    /**
     * 发送图片
     * @param rebootId
     * @return
     */
    public JSONObject sendImageMsg(String rebootId, String groupId, String pic);


    /**
     * 发送图片
     * @param rebootId
     * @return
     */
    public JSONObject sendFile(String rebootId, String groupId, String pic);

    /**
     * 发送短视频
     * @param rebootId
     * @param groupId
     * @param videoUrl
     * @return
     */
    public JSONObject sendVideo(String rebootId, String groupId, String videoUrl);


    /**
     * @所有人 发送消息
     */
    public JSONObject sendGroupMsgAndAtAll(String rebootId, String groupId, String msg);

    /**
     * 发送共享链接
     * @param rebootId
     * @return
     */
    public JSONObject sendShareLink(String rebootId, String groupId, String title, String desc, String imageUrl, String url);


    /**
     * 下发文件到机器人
     */
    public JSONObject downloadFileUrlLocal(String requestUrl, String url, String path);

    /**
     * 消息撤回
     */
    public boolean revokeMsg(String rebootId, String msgId);



}
